#include<iostream>

void sort(int* nums,int len);

int main()
{
	int a[]={5,3,4,1,2};

	sort(a,sizeof(a)/sizeof(int));

	for(int i=0;i<sizeof(a)/sizeof(int);i++)
	{
		std::cout<<a[i]<<' ';

	}
	std::cout<<std
	return 0;
}

void sort(int* nums,int len)
{
	int i,j,k;
	
	if(len<2) return;

	i=0;
	j=len-1;
	k=nums[0];

	while(i<j)
	{
		while(i<j&&nums[j]>=k) j--;

		nums[i]=nums[j];

		while(i<j&&nums[i]<=k) i++;

		nums[j]=nums[i];
	}
	nums[i]=k;

	sort(nums,i);
	sort(nums+i+1,len-i-1);
}
